Skip to content

Conversation

nammn
Copy link
Collaborator

@nammn nammn commented Aug 20, 2025

Summary

This pull request updates all references to the MongoDB agent image to remove the -ubi suffix, standardizing on mongodb-agent instead of mongodb-agent-ubi throughout the codebase, configuration files, tests, and documentation. This change ensures consistency across the project and aligns image names with the new naming convention.

Image Reference Standardization

  • Updated all references in Kubernetes manifests, Helm charts, and configuration files to use quay.io/mongodb/mongodb-agent instead of quay.io/mongodb/mongodb-agent-ubi for agent images and repositories. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

  • Updated build_info.json to use the new image repository names for both patch and release builds. [1] [2]

Code and Test Updates

  • Changed all code comments, environment variables, and default values to reference the new agent image name.

  • Updated all test cases and test configurations to use the new image name, ensuring test coverage matches the new convention. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

Documentation and Output Updates

  • Updated documentation and generated output files to reflect the new agent image name, ensuring user-facing materials are consistent.

  • Modified scripts and supporting files to use the new image repository for reporting and automation.

Proof of Work

  • manually released all the agents to ecr mongodb-agent: Link
  • passing ci
  • script that relocated all agents

Checklist

  • Have you linked a jira ticket and/or is the ticket in the title?
  • Have you checked whether your jira ticket required DOCSP changes?
  • Have you added changelog file?

lucian-tosa and others added 30 commits July 29, 2025 09:58
Fix build scenario

Remove create and push manifests

Continue improvement to main

Simplify main and build_context

missed

Pass Build Configuration object directly

Use legacy and new pipeline

Fix

Remove --include

Rename MCO test image

Multi platform builds, with buildx

TODOs

Implement is_release_step_executed()

Fix init appdb image

Import sort

black formatting

Some cleaning and version adjustments

Adapt main to new build config

Add buildscenario to buildconfig

Handle build env

Renaming, usage of high level config

All images build pass on EVG

Lint

Explicit image type, support custom build_path

Replace old by new pipeline in EVG

Add documentation

Split in multiple files, cleanup

WIP, passing builds on staging temp + multi arch manifests

Replace usage of sonar

Remove namespace

Remove pin_at and build_id

Copied pipeline, removed daily builds and --exclude
Base automatically changed from multi-arch-pipeline-combined to master August 25, 2025 15:29
Copy link

github-actions bot commented Aug 25, 2025

⚠️ (this preview might not be accurate if the PR is not rebased on current master branch)

MCK 1.3.0 Release Notes

New Features

Multi-Architecture Support

We've added comprehensive multi-architecture support for the kubernetes operator. This enhancement enables deployment on IBM Power (ppc64le) and IBM Z (s390x) architectures alongside
existing x86_64 support. Core images (operator, agent, init containers, database, readiness probe) now support multiple architectures. We do not add support IBM and ARM support for Ops-Manager and the init-ops-manager image.

  • MongoDB Agent images have been migrated to new container repository: quay.io/mongodb/mongodb-agent.
    • the agents in the new repository will support the x86-64, ARM64, s390x, and ppc64le architectures. More can be read in the public docs.
    • operator running >=MCK1.3.0 and static cannot use the agent images from the old container repository quay.io/mongodb/mongodb-agent-ubi.
  • quay.io/mongodb/mongodb-agent-ubi should not be used anymore, it's only there for backwards compatibility.

Bug Fixes

  • This change fixes the current complex and difficult-to-maintain architecture for stateful set containers, which relies on an "agent matrix" to map operator and agent versions which led to a sheer amount of images.
  • We solve this by shifting to a 3-container setup. This new design eliminates the need for the operator-version/agent-version matrix by adding one additional container containing all required binaries. This architecture maps to what we already do with the mongodb-database container.
  • Fixed an issue where the readiness probe reported the node as ready even when its authentication mechanism was not in sync with the other nodes, potentially causing premature restarts.

Other Changes

  • Optional permissions for PersistentVolumeClaim moved to a separate role. When managing the operator with Helm it is possible to disable permissions for PersistentVolumeClaim resources by setting operator.enablePVCResize value to false (true by default). When enabled, previously these permissions were part of the primary operator role. With this change, permissions have a separate role.
  • subresourceEnabled Helm value was removed. This setting used to be true by default and made it possible to exclude subresource permissions from the operator role by specifying false as the value. We are removing this configuration option, making the operator roles always have subresource permissions. This setting was introduced as a temporary solution for this OpenShift issue. The issue has since been resolved and the setting is no longer needed.
  • We have deliberately not published the container images for OpsManager versions 7.0.16, 8.0.8, 8.0.9 and 8.0.10 due to a bug in the OpsManager which prevents MCK customers to upgrade their OpsManager deployments to those versions.

Copy link
Contributor

@viveksinghggits viveksinghggits left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM overall. provided some nits.

lucian-tosa and others added 2 commits August 28, 2025 10:19
# Summary

This PR fixes an issue with the new agent dockerfiles where the db tools
where not placed correctly. The binaries should be present in `/tools`.
However, our tests were still passing. For that reason, the agent-script
will now fail if the binaries are missing.

## Proof of Work

The tests should fail if the binaries are missing. Example:
https://spruce.mongodb.com/version/68af05cace35b000077fae05/tasks?sorts=STATUS%3AASC%3BBASE_STATUS%3ADESC
The pipeline should pass.

## Checklist

- [ ] Have you linked a jira ticket and/or is the ticket in the title?
- [ ] Have you checked whether your jira ticket required DOCSP changes?
- [ ] Have you added changelog file?
    - use `skip-changelog` label if not needed
- refer to [Changelog files and Release
Notes](https://github.com/mongodb/mongodb-kubernetes/blob/master/CONTRIBUTING.md#changelog-files-and-release-notes)
section in CONTRIBUTING.md for more details
VERSION="1.0.1"
docker buildx build --load --progress plain . -f docker/mongodb-kubernetes-database/Dockerfile -t "mongodb-kubernetes-database:${VERSION}" \
VERSION="1.3.0"
BASE_REPO_URL="268558157000.dkr.ecr.us-east-1.amazonaws.com/lucian.tosa/"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we committing developer's registry to master?

docker buildx build --load --progress plain . -f docker/mongodb-kubernetes-init-appdb/Dockerfile -t "mongodb-kubernetes-init-appdb:${VERSION}" \
VERSION="1.3.0"
MONGODB_TOOLS_URL="https://downloads.mongodb.org/tools/db"
BASE_REPO_URL="268558157000.dkr.ecr.us-east-1.amazonaws.com/lucian.tosa/"
Copy link
Contributor

@anandsyncs anandsyncs Aug 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above, can we please point it to /dev atleast?

build_info.json Outdated
"repositories": ["268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent-ubi"],
"platforms": [
"repositories": ["268558157000.dkr.ecr.us-east-1.amazonaws.com/dev/mongodb-agent"],
"platforms": [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this indentation change necessary?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its annoying, we should add a json and yaml linter otherwise our ides will do whatever they want, fixed

Copy link
Contributor

@anandsyncs anandsyncs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see Lucian's dev registry in some files, please make it an env variable or point to a common registry.

TOOLS_VERSION="100.12.0"
MONGODB_TOOLS_URL="https://downloads.mongodb.org/tools/db"
MONGODB_AGENT_URL="https://mciuploads.s3.amazonaws.com/mms-automation/mongodb-mms-build-agent/builds/automation-agent/prod"
BASE_REPO_URL="268558157000.dkr.ecr.us-east-1.amazonaws.com/lucian.tosa/"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
BASE_REPO_URL="268558157000.dkr.ecr.us-east-1.amazonaws.com/lucian.tosa/"

LOG_AUTOMATION_CONFIG_DIFF="false"
USE_RACE="false"
docker buildx build --load --progress plain . -f docker/mongodb-kubernetes-operator/Dockerfile -t "mongodb-kubernetes-operator:${VERSION}" \
BASE_REPO_URL="268558157000.dkr.ecr.us-east-1.amazonaws.com/lucian.tosa/"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
BASE_REPO_URL="268558157000.dkr.ecr.us-east-1.amazonaws.com/lucian.tosa/"

@nammn nammn merged commit 8b5472b into master Aug 28, 2025
35 of 37 checks passed
@nammn nammn deleted the migrate-repo branch August 28, 2025 10:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants